typedef int ElemType;
typedef struct DNode
{
    ElemType data;
    struct DNode *prior, *next;
}DNode, *DLinkList;

// 双向链表头插法
DLinkList Dlist_head_insert(DLinkList &DL);

// s双向链表尾插法
DLinkList Dlist_tail_insert(DLinkList &DL);

// 按序号查找结点值
DNode *GetElem(DLinkList DL,int i);

// 按值查找结点
DNode *LocateElem(DLinkList DL, ElemType e);

// 新结点插入第i个位置
bool DListFrontInsert(DLinkList DL,int i,ElemType e);

// 删除第i个结点
bool DListDelete(DLinkList DL,int i);

// 遍历链表
void PrintDList(DLinkList DL);